当前位置:  开发笔记 > 编程语言 > 正文

逻辑运算符|| 返回数字而不是布尔值

如何解决《逻辑运算符||返回数字而不是布尔值》经验,为你挑选了2个好方法。

我附上了两个if条件的例子.第一个if条件按预期工作.第二个if条件返回11,但为什么?我知道第二个if条件是错误的,但我想理解为什么Javascript在这种情况下返回11.

function exception(number) {
// if(number === 10 || number === 11) { // Working as expected
   if(number === 10 || 11) { // Why 11?
        console.log(number);
   }
}

function loop(f) {
    for (i = 0; i <= 100; i++) {
        f(i);
    }
}

loop(exception);

CoderPi.. 5

有关您尝试实现的目标的一些信息:

number === 10 || number === 11 是相同的 (number === 10) || (number === 11)

number === 10 || 11与此处(number === 10) || (11)无法比较的相同11number

现在让我们仔细看看number === 10 || 11:

number === 10true如果数目是类型数和等于10

如果第一个是假的,它将评估下一个语句的布尔值:( 11接受为真,对于不等于0的数字)


J0B.. 5

从这个问题.

(expr1 || expr2)

"如果可以转换为true,则返回expr1;否则返回expr2."

资源

因此,当expr1(或评估)其中之一时0,"",false,null,undefined,NaN,则expr2返回,否则expr1返回



1> CoderPi..:

有关您尝试实现的目标的一些信息:

number === 10 || number === 11 是相同的 (number === 10) || (number === 11)

number === 10 || 11与此处(number === 10) || (11)无法比较的相同11number

现在让我们仔细看看number === 10 || 11:

number === 10true如果数目是类型数和等于10

如果第一个是假的,它将评估下一个语句的布尔值:( 11接受为真,对于不等于0的数字)



2> J0B..:

从这个问题.

(expr1 || expr2)

"如果可以转换为true,则返回expr1;否则返回expr2."

资源

因此,当expr1(或评估)其中之一时0,"",false,null,undefined,NaN,则expr2返回,否则expr1返回

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有